home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-12 | 5.0 KB | 191 lines | [TEXT/CWIE] |
- // NetCache Resolver, 1995 (C) Mizutori Tetsuya
- // - NCR_Error.c, October 8, 1995
- // This document is pretty printed in 10-point Geneva font.
-
- #include "NCR_Error.h"
-
- // prototypes
- static short DisplayAlert (Boolean fatal );
- static StringPtr ErrAE ( OSErr errCode );
- static StringPtr ErrMEM ( OSErr errCode );
- static StringPtr ErrFS ( OSErr errCode );
-
- /***** Do Error Messages *****/
- #define kAlertID 1000
- #define kErrStringID 1000
- #define kNilFilterProc nil
- #define kMoveToFront (WindowPtr)-1L
-
- void ErrorMessage ( long err, StringPtr string, Boolean fatal )
- {
- Str31 errStr;
- Str255 str = "¥p";
-
- NumToString( err, errStr );
-
- ParamText( "¥pError = ", errStr, "¥p¥r", string );
-
- DisplayAlert( fatal );
- }
-
- void ErrorMessageFS ( long err, Boolean fatal )
- {
- ParamText( "¥pFile System Error:¥r", ErrFS(err), "¥p", "¥p" );
-
- DisplayAlert( fatal );
- }
-
- void ErrorMessageAE ( long err, Boolean fatal )
- {
- ParamText( "¥pApple Event Error:¥r", ErrAE(err), "¥p", "¥p" );
-
- DisplayAlert( fatal );
- }
-
- void ErrorMessageMEM ( long err, Boolean fatal )
- {
- ParamText( "¥pMemory System Error:¥r", ErrMEM(err), "¥p", "¥p" );
-
- DisplayAlert( fatal );
- }
-
-
- static short DisplayAlert (Boolean fatal )
- {
- short item;
-
- if ( fatal ) {
- item = StopAlert( kAlertID, kNilFilterProc );
- ExitToShell();
- } else {
- item = NoteAlert( kAlertID, kNilFilterProc );
- if ( item == cancel ) ExitToShell();
- }
-
- return item;
- }
-
- /***** Error messages for File System *****/
- static StringPtr ErrFS ( OSErr errCode )
- {
- StringPtr s;
-
- switch ( errCode ) {
- case noErr: s = "¥pNo error"; break;
- case ioErr: s = "¥pI/O error"; break;
- case opWrErr: s = "¥pFile already open for writing"; break;
- case permErr: s = "¥pAttempt to open locked file for writing"; break;
- case wrPermErr: s = "¥pWrite permittions does not allow writing"; break;
- case fLckdErr: s = "¥pFile is locked"; break;
- case tmfoErr: s = "¥pToo many files open"; break;
- case wPrErr: s = "¥pDiskette is write-protected"; break;
- case dirFulErr: s = "¥pDirectory is full"; break;
- case dskFulErr: s = "¥pDisk is full"; break;
- default: s = "¥pUnknown error"; break;
- }
-
- return s;
- }
-
-
- /***** Error messages for Memory System *****/
- static StringPtr ErrMEM ( OSErr errCode )
- {
- StringPtr s;
-
- switch ( errCode ) {
- case paramErr: s = "¥pError in parameter list"; break;
- case memROZErr: s = "¥pOperation on a read-only zone"; break;
- case memFullErr: s = "¥pNot enough memory"; break;
- case nilHandleErr: s = "¥pNIL master pointer"; break;
- case memWZErr: s = "¥pAttempt to operate on a free block"; break;
- case memPurErr: s = "¥pAttempt to purge a locked block"; break;
- case memBCErr: s = "¥pBlock check failed"; break;
- case memLockedErr: s = "¥pBlock is locked"; break;
- }
-
- return s;
- }
-
- /***** Error messages for Apple Event *****/
- static StringPtr ErrAE ( OSErr errCode )
- {
- StringPtr s;
-
- switch ( errCode ) {
- case noErr: s = "¥pNo error"; break;
- case paramErr: s = "¥pParameter error"; break;
- case memFullErr: s = "¥pNot enough room in heap zone"; break;
- case errAECoercionFail: s = "¥pData could not be coerced"; break;
- case errAEWrongDataType: s = "¥pWrong descriptor type"; break;
- case errAEDescNotFound : s = "¥pDescriptor record was not found"; break;
- case errAENotAEDesc: s = "¥pNot a valid descriptor record"; break;
- case errAEReplyNotValid: s = "¥pReply has not yet arrived"; break;
- default: s = "¥pUnknown error"; break;
- }
-
- return s;
- }
-
- /***** Gestalt check *****/
- void GestaltCheck ( OSType gestaltCode )
- {
- StringPtr s1,s2,s3,s4;
- long feature, mask;
- Boolean result;
- OSErr err;
-
- switch ( gestaltCode ) {
- case gestaltProcessorType:
- mask = gestalt68020;
- s1 = "¥pError: Problem in calling Gestalt!";
- s2 = "¥pSorry, this program requires 68020 CPU, or later.";
- break;
- case gestaltSystemVersion:
- mask = 0x0700;
- s1 = "¥pError: Problem in calling Gestalt!";
- s2 = "¥pSorry, this program requires System 7, or later.";
- break;
- case gestaltAppleEventsAttr:
- mask = gestaltAppleEventsPresent;
- s1 = "¥pError: Problem in calling Gestalt!";
- s2 = "¥pError: Apple events not available!";
- break;
- case gestaltStandardFileAttr:
- mask = gestaltStandardFile58;
- s1 = "¥pError: Gestalt for Standard File Package";
- s2 = "¥pError: Gestalt for The new Standard File Package";
- break;
- case gestaltFSAttr:
- mask = gestaltHasFSSpecCalls;
- s1 = "¥pError: File System Attributes is not supported.";
- s2 = "¥pError: The new FSSpec File Manager is not supported.";
- break;
- default:
- mask = 0;
- s1 = "¥pError: Gestalt for Unknown";
- s2 = "¥pError: Gestalt for Unknown";
- break; }
-
- err = Gestalt( gestaltCode, &feature );
- if ( err != noErr ) ErrorMessage( err, s1, true );
-
- switch ( gestaltCode ) {
- case gestaltProcessorType:
- case gestaltSystemVersion:
- result = ( feature >= mask );
- break;
- case gestaltAppleEventsAttr:
- case gestaltStandardFileAttr:
- case gestaltFSAttr:
- result = ( ( feature & (1L<<mask) ) != 0 );
- break;
- default:
- result = false;
- break; }
-
- if ( ! result ) ErrorMessage( err, s2, true );
- }
-
- // end of program
-